In the field of computer hardware and software technology, a virtual machine is a software implementation of a machine (computer) that executes program instructions like a real machine. Virtual machine technology allows for the sharing of the physical resources underlying virtual machines. In virtual machine environments, a hypervisor running on a host hardware system creates a virtual system on which a guest operating system may execute. The virtual system includes a virtual storage volume on which the guest operating system stores its data. For example, the hypervisor may simulate a hard disk for the guest operating system that the hypervisor stores as a virtual disk file on the host system.
One benefit of virtual storage volumes is that the designated size of the virtual storage volume does not necessarily use a corresponding amount of space on an underlying physical storage volume. For example, the space used on a physical storage volume for a virtual storage volume may only correspond to blocks of the virtual storage volume that are allocated for data rather than the entire size of the virtual storage volume. However, in some cases, changes to the virtual storage volume may not carry over to the physical storage volume, thereby causing the virtual storage volume to use more space on the physical storage volume than necessary.